The present invention relates to a system architecture for a document processing system. It finds particular application in conjunction with synchronization of a real-time clock in one or more modules of a multiple feeding and finishing architecture with a master real-time clock in a controller of the document processing system and will be described with particular reference thereto. However, it is to be appreciated that the present invention is also amenable to other like applications.
In the early days of copiers, copies were fed to a tray where the operator took them and performed manual finishing operations. These manual operations ranged from simple collation and stapling to more sophisticated operations such as folding and inserting in an envelope for mailing. Later products incorporated finishing functionality within the print engine to relieve the operator of these manual finishing functions. Finishing operations included collation, stapling, and binding. The same revolution has also occurred in feeding applications. Operators originally placed the document to be copied on the platen, closed the cover and pushed the start print button. Now, automatic document feeders and recirculating document handlers have become commonplace.
Incorporating feeding and finishing functions within the print engine was well received when collation and stapling were the primary operations. However, customers soon required more and more sophisticated feeding and finishing operations. It became increasingly inefficient to follow a course of developing feeding and finishing functions specific to a single product. Such product development was a very time consuming activity, required enormous resources, and led to duplication of activities. Another issue was the large number of third party vendors with experience in the feeding and finishing technologies. It was a waste of resources to duplicate the off-line feeding and finishing functions currently provided by third party vendors. Under these circumstances, a standard for attaching feeding and finishing devices to print engines was developed by Xerox Corporation (“Xerox”). The standard was used by Xerox for developing new document processing products and by third party vendors for developing feeding and finishing modules. The third party feeding and finishing modules were compatible with Xerox's print engines and other document processing products.
Certain aspects of the standard are described in U.S. Pat. No. 5,629,775 to Platteter et al. (“Platteter '775”) and assigned to Xerox, entitled “System Architecture for Attaching and Controlling Multiple Feeding and Finishing Devices to a Reproduction Machine.” The basic modular architecture (i.e., multiple feeding and finishing architecture (MFFA)) of an electronic image processing apparatus in Platteter '775 inherently allowed the duplication of effort for developing feeding and finishing capabilities to be avoided by permitting and encouraging third party vendors to develop or adapt feeding and finishing devices that were compatible with standard print engines. More specifically, Platteter '775 permitted the document feeding and/or finishing modules to be interconnected with the print engine in a networked environment and organized in a sequence that meets the customer's needs for a fully automated job. This permitted finishing or feeder devices to be attached in any order that the operator decided was appropriate for the application.
However, feeding and finishing modules in the networked MFFA include clocks that must be accurately synchronized with a master clock in the master module, the print engine, in order to correctly perform the printing function. This is because the master module controls all the scheduling between the feeding and finishing modules. As document processing systems became more sophisticated the accuracy and precision of the synchronization have become more and more important.
Clock synchronization in the networked MFFA was initially implemented to synchronize the clocks within the feeding and finishing modules using only the network. Due to delays in communications over the network, this type of clock synchronization is no longer sufficient. Network delay is particularly a problem when more than several feeding and/or finishing modules are configured in the document processing system. In other words, as more feeding and finishing modules are added to the system, the delay over the network increases, causing the synchronization of the module clocks with the master clock to be unpredictable, thereby unreliable, and often with unacceptable error. Additionally, variability of network delay occurred due to fluctuations in network traffic as the network was used for communications other than clock synchronization.
In the networked MFFA, the clock synchronization algorithm was typically designed with the feeding and finishing modules requesting the current master clock time and master module responding to the request, both via the network. More specifically, the basic algorithm went as follows: 1) First, a slave module (i.e., feeding or finishing module) read and saved the current value of its clock. 2) The slave module then sent a request, over the network, to the master module requesting a read of the master clock. 3) The master module then read its clock and sent the time value back to the slave module over the network. 4) On receipt of the message from the master module, the slave again read the value of its clock. 5) The slave module then subtracted the two readings it had done of its clock and divided the result by two (2) to get one-half of the delay over the network. 6) The slave then added the result (one-half the delay) to the master clock reading sent by the master module. 7) The slave then compared the adjusted master clock time to the last reading it had done of its clock. The comparison determined whether there was error between the two clocks. 8) Finally, the slave module then adjusted its clock appropriately to account for the error.
The problem with this algorithm is that the communications delay over the network is not exactly the same for both directions. Sometimes the request takes longer than the reply and other times the reply takes longer than the request. All the slave can measure is the total time between when the request is made and when the value from the master is received. Unfortunately, the master clock is read sometime in between when the request is made and when the slave module receives the reply. Accordingly, any algorithm that is based solely on network communications will not be accurate because of the inherent variability of network delay. This variability only gets worse when additional feeding and/or finishing modules communicate over the network.
The present invention contemplates a new and improved method for clock synchronization in a networked MFFA configuration of a document processing system that overcomes the above-referenced problems and others.